package cn.edu.sdjzu.xg.eagle.entity;

public class Pagination {
    // 每页对象数（默认5）
    private int pageSize = 5;
    // 当前页号（默认1）
    private int pageNo = 1;
    // 总记录数（默认1）
    private int totalNum = 1;

    /**
     * 构造方法：初始化分页参数
     * @param pageSize 每页记录数（需 > 0）
     * @param pageNo   当前页号（需 > 0）
     */
    public Pagination(int pageSize, int pageNo) {
        // 防止错误赋值
        if (pageSize > 0) {
            this.pageSize = pageSize;
        }
        if (pageNo > 0) {
            this.pageNo = pageNo;
        }
    }

    /**
     * 生成 SQL 的 LIMIT 子句（例如 "LIMIT 5, 10"）
     * @param totalNum 总记录数（向前端传递）
     * @return LIMIT 子句字符串
     */
    public String toLimitClause(int totalNum) {
        this.totalNum = totalNum;
        int offset = (this.pageNo - 1) * this.pageSize; // 计算偏移量
        return "LIMIT " + offset + ", " + this.pageSize;
    }

    //--------------------- Getter 方法（Fastjson 依赖）---------------------
    public int getPageSize() {
        return pageSize;
    }

    public int getPageNo() {
        return pageNo;
    }

    public int getTotalNum() {
        return totalNum;
    }
}